#include <iostream>
using namespace std;
int f[1001]={0};

int find(int t)
{
    if(f[t]==t) return t;
    else
    {
        f[t]=find(f[t]);
        return f[t];
    }
}


int main() {
    int n,m;
    while(true)
    {
        int q,p,pd=1,js=0;
        cin>>n;
        if(n==0)
        {
            break;
        }
        for(int i=1;i<=n;i++)
        {
            f[i]=i;
        }
        cin>>m;
        for(int i=0;i<m;i++) {
            cin >> q >> p;
            int nq=find(q);
            int np=find(p);
            if(nq!=np)
            {
                f[nq]=find(np);
            }
        }
        for(int i=1;i<=n;i++)
        {
            if(f[i]==i)
            {
                js++;
            }
        }
        cout<<js-1<<endl;
    }
    return 0;
}
